Appearance
JD10 单词倒排
本节目标:理解“JD10 单词倒排”的核心思路,并能把它用于实际开发或面试表达。 简单 通过率:26.37% 时间限制:1秒 空间限制:32M 知识点==排序====字符串== 描述 对字符串中的所有单词进行倒排。 说明: 1、构成单词的字符只有26个大写或小写英文字母; 2、非构成单词的字符均视为单词间隔符; 3、要求倒排后的单词间隔符以一个空格表示;如果原字符串中相邻单词间有多个间隔符时,倒排转换后也只允许出现一个空格间隔符; 4、每个单词最长20个字母;
数据范围:字符串长度满足 1≤n≤10000 输入描述: 输入一行,表示用来倒排的句子 输出描述: 输出句子的倒排结果 示例1 输入: I am a student ==复制== 输出: student a am I ==复制== 示例2 输入: $bo*y gi!r#l ==复制== 输出: l r gi y bo
为了实现这个要求,我们可以采取以下步骤:
- 首先,使用正则表达式来匹配并分割字符串中的单词。这里的“单词”定义为由26个英文字母(大写或小写)构成的字符串。
- 接着,将匹配到的单词列表反转。
- 最后,将反转后的单词列表用一个空格连接成新的字符串,并输出。
以下是使用Python实现的代码示例:
import re
def reverse_words(sentence):
使用正则表达式找出所有单词,这里单词定义为由英文字母构成的字符串
words = re.findall(r'[a-zA-Z]+', sentence)
反转单词列表
reversed_words = words[::-1]
使用空格连接反转后的单词列表,形成新的字符串
reversed_sentence = ' '.join(reversed_words) return reversed_sentence
示例输入
input_sentence = input()
执行函数并打印结果
print(reverse_words(input_sentence))
这段代码使用了re.findall()函数来查找输入字符串中所有符合条件(由一个或多个英文字母组成)的单词。找到所有单词后,通过切片操作[::-1]来反转单词列表。最后,使用' '.join()方法将反转后的单词列表连接成一个新的字符串,并输出。
这种方法有效地实现了题目要求的单词倒排功能,同时利用正则表达式轻松处理了非单词字符作为分隔符的情况。
